package com.guang.executor.schduleexecutor;

import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.TimeUnit;

/**
 * @author lg
 * @Description 因为任务抛出异常，而导致当前线程终止。造成不可用现象
 *              而线程池则不会，线程池中即使任务出现异常，也会创建一个新的线程继续来执行任务
 *
 * @date 2022/10/28 15:34
 */
public class TimerTest {
    public static void main(String[] args) throws InterruptedException {
        // 创建的是一个单线程，单线程会在终止之后不会再执行了
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println("hello");
                throw new IllegalArgumentException("不符合条件");
            }
        },1000,2000);

        TimeUnit.SECONDS.sleep(5);
        timer.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                System.out.println("hello");
                throw new IllegalArgumentException("不符合条件");
            }
        },1000,2000);
    }
}
